from itertools import groupby

from dataclasses import dataclass

@dataclass
class Test:
    key_field: int


obj_list = [
    Test(1),
    Test(2),
    Test(1),
    Test(2),
    Test(3),
]
# 假设你的对象列表是 obj_list
# 首先，你需要根据 key_field 字段对列表进行排序
sorted_list = sorted(obj_list, key=lambda x: x.key_field)

# 然后，你可以使用 groupby 函数进行分组
grouped = groupby(sorted_list, key=lambda x: x.key_field)

# 最后，你可以将分组的结果转换为一个字典
result = {k: list(v) for k, v in grouped}

print(result)
# {1: [Test(key_field=1), Test(key_field=1)], 2: [Test(key_field=2), Test(key_field=2)], 3: [Test(key_field=3)]}